﻿function GetCodiceXXXX() {
    var url = '/api/AnagraficaArticoli/GetCodiceXXXX';

    $.ajax({
        global: false,
        type: "GET",
        url: url,
        data: null,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (response) {

            var msg = '<center>Il codice fornitore non è associato ad alcun articolo!</center><br/><center>Come vuoi procedere ?</center>';

            /* creazione codice XXXX */
            var theDialog = bootbox.dialog({
                title: "Associazione Articolo - Codice",
                message: msg,
                buttons: {
                    action1: {
                        label: 'Associa un ARTICOLO ESISTENTE',
                        className: 'btn-primary  pull-left',
                        callback: function () {
                            theDialog.modal('hide');
                        }
                    },
                    action2: {
                        label: 'Associa un NUOVO ARTICOLO',
                        className: 'btn-danger  pull-right',
                        callback: function () {
                            GetCodiceXXXX_2();
                        }
                    }
                }
            });

        },
        failure: function (response) {
            alert(response);
        }
    });
}

/* callback richiamata dalla dialog di ADD per aggiungere fisicamente l'elemento alla tabella */
function GetCodiceXXXX_2() {
    var m_id_magazzino = $('#formly_1_asyncselect_Customer_1').val();

    if ((m_id_magazzino === undefined) || (m_id_magazzino == "")) {
        alert('Indicare un Magazzino');
        return;
    }

    m_id_magazzino = m_id_magazzino.replace('string:', '');

    var url = '/api/AnagraficaArticoli/GetCodiceXXXX';

    $.ajax({
        global: false,
        type: "GET",
        url: url,
        data: null,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (response) {
            // crea l'articolo XXXX...
            var m_codiceXXXX = 'XXXX_' + response;

            CreaCodiceXXXX(m_id_magazzino, m_codiceXXXX);
        },
        failure: function (response) {
            alert(response);
        }
    });
}

function CreaCodiceXXXX(magazzino, codiceXXXX) {
    $("#iframeCrud").prop('src', '/Anagrafiche/AnagraficaArticoli_CRUD.aspx?idMg=' + magazzino + '&codXXXX=' + codiceXXXX).appendTo("#crudDialog");
    $("#iframeCrud").width(1000);
    $("#iframeCrud").height(550);
    $("#iframeCrud").show();

    m_dialog = $("#crudDialog").dialog({
        title: 'Articolo',
        width: 'auto',
        height: 'auto',
        modal: true,
        close: function (response) {
            /* ricaricare l'elenco degli articoli */

            LoadCodiciArticoli(magazzino, codiceXXXX);

            $("#iframeCrud").contents().remove();
            $('#iframeCrud').hide();
            $('#crudDialog').dialog('close');
        }
    });
}

function CreaArticoloXXXX(codice) {
    var url = '/api/AnagraficaArticoli/CreaArticoloXXXX';

    var model = extScope.vm.model;
    var m_cliente = model.Customer;

    var m_data = JSON.stringify({ codice: codice, cliente: m_cliente });

    $.ajax({
        global: false,
        type: "POST",
        url: url,
        data: m_data,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (response) {
            alert(response.Data[0]);

            var m_xxxx = JSON.parse(response.Data[1]);

            model.Articolo = m_xxxx.value;
            extScope.$apply();

            $('#formly_1_asyncselect_Articolo_0').append($("<option/>", {
                value: m_xxxx.value,
                text: m_xxxx.name
            })).val(m_xxxx.value).prop("selected", true);

            LeggiDati(m_xxxx.value);
        },
        failure: function (response) {
            alert(response);
        }
    });
}

function LeggiDati(options) {
    var url = "/api/AnagraficaArticoli/GetDettaglio";

    if (options === undefined) {
        return;
    }

    $.ajax({
        global: false,
        type: "POST",
        url: url,
        data: JSON.stringify({ id: options }),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (response) {
            var model = extScope.vm.model;

            if (response != null) {
                $(".img-thumbnail").attr("src", response.FotoArticolo);
                $('.quantitaAOR').text(response.DescrUnitaDiMisura);
                $('.qtaFattAOR').text(response.DescrUMFatt);

                model.Descrizione = response.Descrizione;
                model.Tipologia = response.DescrTipologia;
                model.SerieFamiglia = response.SerieFamiglia;
                model.Dimensioni = response.Dimensioni;
                model.NoteArticolo = response.Note;
                model.CodiceFornitore = response.DescrCodiceFornitore;

                //var label = $('#formly_1_asyncselect_CodiceFornitore_1 :selected').parent().attr('label');
                //model.Fornitore = label;

                $('#formly_1_asyncselect_CodiceFornitore_1').prop('disabled', false);
                if (response.CodiceFornitore != null) {
                    $('#formly_1_asyncselect_CodiceFornitore_1').prop('disabled', true);
                } else {
                    $('#formly_1_asyncselect_CodiceFornitore_1').prop('disabled', false);
                }

                $('#formly_1_inputnumber_Quantita_2').text('');
                $('#formly_1_inputnumber_QtaFatt_3').text('');
                $('#formly_1_inputnumber_Quantita_2').val('');
                $('#formly_1_inputnumber_QtaFatt_3').val('');
            } else {
                model = null;
                $('#formly_1_asyncselect_CodiceFornitore_1').prop('disabled', false);

                AzzeraDati();
            }

            extScope.$apply();
        },
        failure: function (response) {
            alert(response);
        }
    });
}

function CreaArticoloXXXX(codice, quantita) {
    var url = '/api/AnagraficaArticoli/CreaArticoloXXXX';

    var model = extScope.vm.model;
    var m_cliente = model.Customer;

    var m_data = JSON.stringify({ codice: codice, cliente: m_cliente });

    $.ajax({
        global: false,
        type: "POST",
        url: url,
        data: m_data,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (response) {
            alert(response.Data[0]);

            var m_xxxx = JSON.parse(response.Data[1]);

            model.Articolo = m_xxxx.value;
            extScope.$apply();

            $('#formly_1_asyncselect_Articolo_0').append($("<option/>", {
                value: m_xxxx.value,
                text: m_xxxx.name
            })).val(m_xxxx.value).prop("selected", true);

            //
            CreaMovimentoCaricoFittizio(quantita);
        },
        failure: function (response) {
            alert(response);
        }
    });
}

function Salva_Dati_Documento_Carico___(objModel) {
    var url = '/api/Movimenti/SalvaDatiDocumentoCarico';

    var m_data = JSON.stringify({ data: objModel });

    $.ajax({
        global: false,
        type: "POST",
        url: url,
        data: m_data,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (response) {

            var data = JSON.parse(response);

            m_id_movimento_carico = data.Id;

            Salva_Elemento_Carico(m_id_movimento_carico, objModel);
        },
        failure: function (response) {
            alert(response);
        }
    });
}

function Salva_Elemento_Carico___(idMovimento, objModel) {
    var url = '/api/Movimenti/SalvaElementoCarico';

    var m_data = JSON.stringify({ idMovimento: idMovimento, data: objModel });

    $.ajax({
        global: false,
        type: "POST",
        url: url,
        data: m_data,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (response) {
            alert('Movimento carico fittizio creato.');

            //
            var model = extScope.vm.model;
            LeggiDati(model.Articolo);
        },
        failure: function (response) {
            alert(response);
        }
    });
}

function CreaMovimentoCaricoFittizio(quantita) {
    var model = extScope.vm.model;

    var m_codiceArticolo = $('#formly_1_asyncselect_Articolo_0 option:selected').text();
    var m_descrDocumento = $('#formly_1_asyncselect_TipoDocumento_0 option:selected').text();

    var m_caricoItem = new Object();
    //m_caricoItem.Id = model.Articolo;
    m_caricoItem.Descrizione = model.Descrizione;
    m_caricoItem.Quantita = quantita;
    m_caricoItem.Prenotata = 0;
    m_caricoItem.Customer = model.Customer;
    m_caricoItem.TipoDocumento = model.TipoDocumento;
    m_caricoItem.NumeroDocumento = m_descrDocumento + ' - ' + m_codiceArticolo;
    m_caricoItem.DataMovimento = model.DataMovimento;
    m_caricoItem.DataDocumento = model.DataMovimento;
    m_caricoItem.Note = "Carico Fittizio per articolo XXXX";
    m_caricoItem.Articolo = model.Articolo;
    m_caricoItem.CodiceFornitore = model.CodiceFornitore;

    Salva_Dati_Documento_Carico(m_caricoItem);
}